// -----------------------------------------------------------------------
//  <copyright file="IAggregateRoot.cs" company="LiuliuSoft">
//      Copyright (c) 2022-2022 DaprPlus. All rights reserved.
//  </copyright>
//  <site>https://www.dapr.plus</site>
//  <last-editor>郭明锋</last-editor>
//  <last-date>2022-10-25 20:20</last-date>
// -----------------------------------------------------------------------

namespace DaprPlus.Domain.Entity;

/// <summary>
/// 定义聚合根
///     1. 聚合根是聚合的入口点和边界的守护者。
///     2. 它是聚合内部所有变更的唯一通道，确保聚合内部的业务规则和不变性被保持。
///     3. 聚合根本身是一种特别的实体，具有全局唯一的标识符。
/// 
/// 在DDD的上下文中，实体可以是聚合根，也可以是聚合内部的其他对象。所有聚合根都是实体，但并非所有实体都是聚合根。实体成为聚合根取决于它在聚合中的角色： 
///     1. 如果实体是聚合的入口点，并且其他对象的生命周期和一致性由它来管理，那么这个实体就是聚合根。
///     2. 如果实体是由聚合根管理，并存在于聚合边界内部，那么它就是聚合中的一个实体，但不是聚合根。
/// </summary>
public interface IAggregateRoot
{ }
